package imnu.dbuilts;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import java.sql.SQLException;

/**
 * @author: lys
 * @类名: DBProvider
 * @Title:
 * @date: 2020/8/12
 **/
public class DBProvider {
    /**
     * 方法描述 使用DBUilts进行查询操作
     * @param sql 查询用的sql语句
     * @param rsh 转储的结果集类型对应的实现类
     * @param params sql语句的参数
     * @param <T> 结果集泛型
     * @return 返回结果集
     */
    public static <T> T query(String sql, ResultSetHandler<T> rsh, Object...params){
        T t_queryResult = null;
        //获取查询操作对象QueryRunner
        QueryRunner runner = new QueryRunner(DBCPDataSource.getDataSource());
        try {
            //使用QueryRunner进行查询操作
            t_queryResult = runner.query(sql,rsh,params);
        } catch (SQLException e) {
            System.out.println("DBUilts数据库查询操作异常！！！");
        }
        return t_queryResult;
    }

    /**
     * 方法描述 使用DBUilts进行增删改操作
     * @param sql SQL语句
     * @param params SQL语句的参数
     * @return 操作结果影响的行数
     */
    public static int update(String sql,Object...params){
        int i = 0;
        QueryRunner runner = new QueryRunner(DBCPDataSource.getDataSource());
        try {
            i = runner.update(sql,params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return i;
    }

}
